package com.yunhe.merchants.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.yunhe.common.annotation.*;
import com.yunhe.merchants.constant.MyProjectConsts;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.util.Date;

/**
 * @Author: DongWenYu
 * @Date: 2021/4/29 15:53
 */
public class ProcessStatus implements Serializable {

    private static final long serialVersionUID = 4216448106782196688L;

    /**
     * id
     */
    private Long id;

    /**
     * 项目id
     */
    private Long projectId;

    /**
     * 企业名称
     */
    private String companyName;

    /**
     * 当前状态
     */
    private String status;

    /**
     * 需求面积
     */
    private String areaRequirement;

    /**
     * 需求面积
     */
    @NameTitle(nameCode = "areaRequirement",nameType = "ITEM")
    private String areaRequirementTitle;

    /**
     * 推荐厂房
     */
    private Long recommendOffice;

    /**
     * 推荐厂房名字
     */
    @OfficeName(officeId = "recommendOffice")
    private String recommendOfficeTitle;

    /**
     * 当前客户地址
     */
    private String custAddress;

    /**
     * 客户需求
     */
    private String custDemand;

    /**
     * 换园原因
     */
    @CodeFromTitle(code = "changeReason")
    private String changeReason;

    /**
     * 换园原因
     */
    @EnumItemCode(code = "changeReason")
    private String changeReasonTitle;

    /**
     * 是否沟通失败
     */
    private String telFail = MyProjectConsts.BOOLEAN.No.value();
    /**
     * 失败原因
     */
    @CodeFromTitle(code = "failureCause")
    private String failReason ;

    /**
     * 失败原因Title
     */
    @EnumItemCode(code = "failureCause")
    private String failReasonTitle ;

    /**
     * 是否开启保护期
     */
    private String startProtect = MyProjectConsts.BOOLEAN.No.value();

    /**
     * 到访照片
     */
    private String visitPhoto;

    /**
     * 商务条款
     */
    private String businessClause;

    /**
     * 合同名称
     */
    private String contractName;

    /**
     * 合同
     */
    private String contract;

    /**
     * 选定厂房
     */
    private Long chosenOffice;

    /**
     * 选定厂房名字
     */
    @OfficeName(officeId = "chosenOffice")
    private String chosenOfficeTitle;

    /**
     * 支付金额
     */
    private Integer paymentAmount;

    /**
     * 收据
     */
    private String receipt;

    /**
     * 证件
     */
    private String certificates;

    /**
     * 是否已支付尾款
     */
    private String payoff = MyProjectConsts.BOOLEAN.No.value();

    /**
     * 到期时间
     */
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    private Date expireTime;

    /**
     * 签约时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    private Date signTime;

    /**
     * 开始时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    private Date startTime;

    private String createTime;

    /**
     * 组织Id
     */
    private Long orgId;

    /**
     * 负责人Id
     */
    private Long principal;

    public String getAreaRequirementTitle() {
        return areaRequirementTitle;
    }

    public void setAreaRequirementTitle(String areaRequirementTitle) {
        this.areaRequirementTitle = areaRequirementTitle;
    }

    public String getContractName() {
        return contractName;
    }

    public void setContractName(String contractName) {
        this.contractName = contractName;
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getCompanyName() {
        return companyName;
    }

    public void setCompanyName(String companyName) {
        this.companyName = companyName;
    }

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public String getAreaRequirement() {
        return areaRequirement;
    }

    public void setAreaRequirement(String areaRequirement) {
        this.areaRequirement = areaRequirement;
    }

    public Long getRecommendOffice() {
        return recommendOffice;
    }

    public void setRecommendOffice(Long recommendOffice) {
        this.recommendOffice = recommendOffice;
    }

    public String getCustAddress() {
        return custAddress;
    }

    public void setCustAddress(String custAddress) {
        this.custAddress = custAddress;
    }

    public String getCustDemand() {
        return custDemand;
    }

    public void setCustDemand(String custDemand) {
        this.custDemand = custDemand;
    }

    public String getChangeReason() {
        return changeReason;
    }

    public void setChangeReason(String changeReason) {
        this.changeReason = changeReason;
    }

    public String getTelFail() {
        return telFail;
    }

    public void setTelFail(String telFail) {
        this.telFail = telFail;
    }

    public String getStartProtect() {
        return startProtect;
    }

    public void setStartProtect(String startProtect) {
        this.startProtect = startProtect;
    }

    public String getVisitPhoto() {
        return visitPhoto;
    }

    public void setVisitPhoto(String visitPhoto) {
        this.visitPhoto = visitPhoto;
    }

    public String getBusinessClause() {
        return businessClause;
    }

    public void setBusinessClause(String businessClause) {
        this.businessClause = businessClause;
    }

    public String getContract() {
        return contract;
    }

    public void setContract(String contract) {
        this.contract = contract;
    }

    public Long getChosenOffice() {
        return chosenOffice;
    }

    public void setChosenOffice(Long chosenOffice) {
        this.chosenOffice = chosenOffice;
    }

    public Integer getPaymentAmount() {
        return paymentAmount;
    }

    public void setPaymentAmount(Integer paymentAmount) {
        this.paymentAmount = paymentAmount;
    }

    public String getReceipt() {
        return receipt;
    }

    public void setReceipt(String receipt) {
        this.receipt = receipt;
    }

    public String getCertificates() {
        return certificates;
    }

    public void setCertificates(String certificates) {
        this.certificates = certificates;
    }

    public String getPayoff() {
        return payoff;
    }

    public void setPayoff(String payoff) {
        this.payoff = payoff;
    }

    public Date getExpireTime() {
        return expireTime;
    }

    public void setExpireTime(Date expireTime) {
        this.expireTime = expireTime;
    }

    public Date getStartTime() {
        return startTime;
    }

    public void setStartTime(Date startTime) {
        this.startTime = startTime;
    }

    public Date getSignTime() {
        return signTime;
    }

    public void setSignTime(Date signTime) {
        this.signTime = signTime;
    }

    public String getRecommendOfficeTitle() {
        return recommendOfficeTitle;
    }

    public void setRecommendOfficeTitle(String recommendOfficeTitle) {
        this.recommendOfficeTitle = recommendOfficeTitle;
    }

    public String getChangeReasonTitle() {
        return changeReasonTitle;
    }

    public void setChangeReasonTitle(String changeReasonTitle) {
        this.changeReasonTitle = changeReasonTitle;
    }

    public String getChosenOfficeTitle() {
        return chosenOfficeTitle;
    }

    public void setChosenOfficeTitle(String chosenOfficeTitle) {
        this.chosenOfficeTitle = chosenOfficeTitle;
    }

    public String getFailReason() {
        return failReason;
    }

    public void setFailReason(String failReason) {
        this.failReason = failReason;
    }

    public String getFailReasonTitle() {
        return failReasonTitle;
    }

    public void setFailReasonTitle(String failReasonTitle) {
        this.failReasonTitle = failReasonTitle;
    }

    public Long getOrgId() {
        return orgId;
    }

    public void setOrgId(Long orgId) {
        this.orgId = orgId;
    }

    public Long getProjectId() {
        return projectId;
    }

    public void setProjectId(Long projectId) {
        this.projectId = projectId;
    }

    public Long getPrincipal() {
        return principal;
    }

    public String getCreateTime() {
        return createTime;
    }

    public void setCreateTime(String createTime) {
        this.createTime = createTime;
    }

    public void setPrincipal(Long principal) {
        this.principal = principal;
    }


}
